package com.heima;

public class OperatorDemo5 {
    public static void main(String[] args) {
        //逻辑运算符的使用与选择
        double size = 9.8;
        double storage = 16;
        //需求：尺寸大于等于6.95 内存大于等于8GB
        //注意：必须前后都是true结果才是true
        System.out.println(size >= 6.95 & storage >= 8);//true

        //需求：要么内存大于等于8，要么尺寸大于等于6.95
        //注意：只要有一个true结果就一定是true
        System.out.println(size >= 6.95 | storage >= 8);//true

        System.out.println(!true);//false
        System.out.println(!false);//true

        //逻辑异或：必须两个结果不同才是true
        System.out.println(false ^  true); //true
        System.out.println(true ^  false);//true
        System.out.println(true ^  true);//false
        System.out.println(false ^  false);//false

        System.out.println("---------&& & || | 的区别-------------");
        int a = 10;
        int b = 20;
//        System.out.println(a > 100 && ++b > 10);//b值20,说明前面为false,&&后面的++b不执行
        System.out.println(a > 100 & ++b > 10);//b值21,说明前面为false,&还继续往后走，判断两者为false才false
        System.out.println(b);

        int i = 10;
        int j = 20;
//        System.out.println(i > 2 || ++j > 10);//j值20,说明前面为true,||后面的++i不执行
        System.out.println(j);//j值21,说明前面为true,|后面的++i还要执行
    }
}
